
[dbo].[asi_InsertSystemConfig]
CREATE PROCEDURE [dbo].[asi_InsertSystemConfig]
@systemKeyword nvarchar(25),
@systemConfigPageName nvarchar(30),
@userId nvarchar(60),
@systemConfigKey uniqueidentifier,
@parameterName nvarchar(255),
@propertyDefinitionKey uniqueidentifier,
@dataTypeCode int,
@hiControlTypeCode int,
@hiControlWidth int,
@description nvarchar(500),
@defaultParameterValue nvarchar(2500),
@sortOrder int = -1
AS
BEGIN
DECLARE @systemEntityKey uniqueidentifier
DECLARE @systemConfigPageKey uniqueidentifier
DECLARE @systemUserKey uniqueidentifier
DECLARE @organizationKey uniqueidentifier
SELECT @systemEntityKey = [SystemEntityKey] FROM [dbo].[SystemEntity] WHERE [SystemKeyword] = @systemKeyword
SELECT @systemConfigPageKey = [SystemConfigPageKey] FROM [dbo].[SystemConfigPageRef] WHERE [SystemConfigPageName] = @systemConfigPageName
SELECT @systemUserKey = [UserKey] FROM [dbo].[UserMain] WHERE [UserId] = @userId
IF @systemUserKey IS NULL
SELECT @systemUserKey = [UserKey] FROM [dbo].[UserMain] WHERE [UserId] = 'SYSTEM'
IF @systemUserKey IS NULL
SELECT @systemUserKey = [UserKey] FROM [dbo].[UserMain] WHERE [UserId] = 'ADMINISTRATOR'
IF @systemUserKey IS NULL
SELECT @systemUserKey = [UserKey] FROM [dbo].[UserMain] WHERE [UserId] = 'MANAGER'
SELECT @organizationKey = [OrganizationKey] FROM [dbo].[OrganizationMain] WHERE [IsDefault] = 1
IF NOT EXISTS (SELECT 1 FROM [dbo].[PropertyDefinition] WHERE [Label] = @parameterName)
BEGIN
INSERT INTO [dbo].[PropertyDefinition] (
[PropertyDefinitionKey],
[Label],
[DataTypeCode],
[HIControlTypeCode],
[HIControlWidth])
VALUES (
@propertyDefinitionKey,
@parameterName,
@dataTypeCode,
@hiControlTypeCode,
@hiControlWidth)
END
IF NOT EXISTS (SELECT 1 FROM [dbo].[SystemConfigParameterRef]
WHERE [ParameterName] = @parameterName AND [SystemKeyword] = @systemKeyword)
BEGIN
INSERT INTO [dbo].[SystemConfigParameterRef] (
[ParameterName],
[SystemKeyword],
[PropertyDefinitionKey],
[Description],
[DefaultParameterValue])
VALUES (
@parameterName,
@systemKeyword,
@propertyDefinitionKey,
@description,
@defaultParameterValue)
END
IF NOT EXISTS (SELECT 1 FROM [dbo].[SystemConfig]
WHERE [ParameterName] = @parameterName AND [OrganizationKey] = @organizationKey AND [SystemEntityKey] = @systemEntityKey)
BEGIN
INSERT INTO [dbo].[SystemConfig] (
[SystemConfigKey],
[ParameterName],
[ParameterValue],
[Description],
[CreatedByUserKey],
[CreatedOn],
[UpdatedByUserKey],
[UpdatedOn],
[OrganizationKey],
[SystemEntityKey])
VALUES (
@systemConfigKey,
@parameterName,
@defaultParameterValue,
@description,
@systemUserKey,
GETDATE(),
@systemUserKey,
GETDATE(),
@organizationKey,
@systemEntityKey)
END
IF NOT EXISTS (SELECT 1 FROM [dbo].[SystemConfigPageParameterRef]
WHERE [SystemConfigPageKey] = @systemConfigPageKey AND [ParameterName] = @parameterName)
BEGIN
SET @sortOrder = ISNULL(@sortOrder,-1)
IF @sortOrder != -1
BEGIN
IF EXISTS (SELECT 1 FROM [dbo].[SystemConfigPageParameterRef] WHERE [SystemConfigPageKey] = @systemConfigPageKey AND [SortOrder] = @sortOrder)
BEGIN
UPDATE [dbo].[SystemConfigPageParameterRef]
SET [SortOrder] = ISNULL([SortOrder],0) + 1
WHERE [SystemConfigPageKey] = @systemConfigPageKey AND ISNULL([SortOrder],0) >= @sortOrder
END
END
ELSE
BEGIN
SELECT @sortOrder = ISNULL(MAX([SortOrder]),0) + 1 FROM [dbo].[SystemConfigPageParameterRef] WHERE [SystemConfigPageKey] = @systemConfigPageKey
END
INSERT INTO [dbo].[SystemConfigPageParameterRef] (
[SystemConfigPageKey],
[ParameterName],
[SortOrder])
VALUES (
@systemConfigPageKey,
@parameterName,
@sortOrder)
END
END
GO